package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.Drtypeinfo;
import com.ruoyi.system.domain.Drtypemode;
import org.apache.ibatis.annotations.Param;

/**
 * 设备类型管理Mapper接口
 * 
 * @author yaozh
 * @date 2024-02-28
 */
public interface DrtypeinfoMapper 
{
    /**
     * 根据dBname和iscustomType返回所有设备类型
     * @param dBname
     * @param iscustomType
     * @return
     */
    List<Drtypeinfo> findAllDrtypeAndDr(@Param("dBname")String dBname,@Param("iscustomType") Integer iscustomType);

    /**
     * 根据dBname和设备类型ID返回设备类型
     * @param dBname
     * @param drtypeid
     * @return
     */
    Drtypeinfo findObjectByDrtypeid(@Param("dBname")String dBname,@Param("drtypeid") Integer drtypeid);

    /**
     * 查询设备类型管理
     * 
     * @param drtypeid 设备类型管理主键
     * @return 设备类型管理
     */
    public Drtypeinfo selectDrtypeinfoByDrtypeid(@Param("drtypeid") Long drtypeid, @Param("dbName") String dbName);

    public Drtypeinfo selectDrTypeInfoByParentIdAndDrTypeName(@Param("parentId") Long parentId, @Param("drTypeName") String drTypeName, @Param("dbName") String dbName);

    /**
     * 查询设备类型管理列表
     * 
     * @param drtypeinfo 设备类型管理
     * @return 设备类型管理集合
     */
    public List<Drtypeinfo> selectDrtypeinfoList(@Param("drtypeinfo") Drtypeinfo drtypeinfo, @Param("dbName") String dbName);

    List<Drtypeinfo> selectDrTypeForAll(@Param("dbName") String dbName);

    /**
     * 新增设备类型管理
     * 
     * @param drtypeinfo 设备类型管理
     * @return 结果
     */
    public int insertDrtypeinfo(@Param("drtypeinfo") Drtypeinfo drtypeinfo, @Param("dbName") String dbName);

    /**
     * 修改设备类型管理
     * 
     * @param drtypeinfo 设备类型管理
     * @return 结果
     */
    public int updateDrtypeinfo(@Param("drtypeinfo") Drtypeinfo drtypeinfo, @Param("dbName") String dbName);

    /**
     * 删除设备类型管理
     * 
     * @param drtypeid 设备类型管理主键
     * @return 结果
     */
    public int deleteDrtypeinfoByDrtypeid(@Param("drtypeid") Long drtypeid, @Param("dbName") String dbName);

    /**
     * 根据dBname和设备类型ID删除设备类型
     * @param dBname
     * @param drtypeid
     */
    void deleteDrtypeinfoById(@Param("dBname")String dBname, @Param("drtypeid")Integer drtypeid);

    /**
     * 根据dBname将 设备类型信息 插入到 项目库的设备类型表中。
     * @param dBname
     * @param drtypeinfo
     * @return
     */
    int insertObject(@Param("dBname") String dBname,@Param("drtypeinfo") Drtypeinfo drtypeinfo);

    /**
     * 批量删除设备类型管理
     * 
     * @param drtypeids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDrtypeinfoByDrtypeids(@Param("drtypeids") Long[] drtypeids, @Param("dbName") String dbName);

    /**
     * 批量删除设备类型模板
     * 
     * @param drtypeids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDrtypemodeByDrtypeids(@Param("drtypeids") Long[] drtypeids, @Param("dbName") String dbName);
    
    /**
     * 批量新增设备类型模板
     * 
     * @param drtypemodeList 设备类型模板列表
     * @return 结果
     */
    public int batchDrtypemode(@Param("drtypemodeList") List<Drtypemode> drtypemodeList, @Param("dbName") String dbName);
    

    /**
     * 通过设备类型管理主键删除设备类型模板信息
     * 
     * @param drtypeid 设备类型管理ID
     * @return 结果
     */
    public int deleteDrtypemodeByDrtypeid(@Param("drtypeid") Long drtypeid, @Param("dbName") String dbName);

}
